Computers traditionally use built-in code known as a BIOS (Basic Input/Output System) to perform initial boot functions and to control certain attached devices before loading an operating system or other software. This enables a computer to receive input from a keyboard and to output data to a display, and further provides the computer with control of devices such as serial communications ports and disk drives.
When booting, a personal computer typically either executes the BIOS from ROM or flash memory, or loads the BIOS into RAM and executes the BIOS code from RAM to perform initial testing, configuration, and to initialize loading an operating system. Although operating systems are traditionally loaded from hard disks or diskette drives, BIOS extensions such as the PXE or Preboot eXecution Environment provide a computer system the ability to boot an operating system from an additional source. This technology is often used to perform functions such as booting the computer over the network connection via a network bootstrap program, or to perform other desired functions. It can also be used to load and execute PXE boot extensions or programs from other networked computers before the computer boots.
In manufacturing a computer system, it is desired that a computer be able to boot over a network using a technology such as the PXE to load boot extensions so that the computer can be configured, and to perform tasks such as loading an operating system onto the hard disk via a network connection. Doing this in an environment with multiple types of computer systems being built and configured traditionally requires that a user select the proper PXE boot extension image from a PXE boot extension server while booting a new system to ensure that the PXE boot extension specific to that computer's desired configuration is loaded from the PXE boot extension server.
It is desirable to eliminate the need for a user to manually perform the function of selecting a PXE boot extension based on the desired configuration of the booting computer.